package com.minisoft.workhour.model;

import lombok.Data;
import java.time.LocalDate;

/**
 * 工作项模型
 */
@Data
public class WorkItem {

    /**
     * 工作项描述
     */
    private String description;

    /**
     * 花费工时（小时）
     */
    private double hours;

    /**
     * 任务编号
     */
    private String taskId;

    /**
     * 工作日期
     */
    private LocalDate workDate;

    /**
     * 构造函数
     */
    public WorkItem() {}

    public WorkItem(String description, double hours, String taskId, LocalDate workDate) {
        this.description = description;
        this.hours = hours;
        this.taskId = taskId;
        this.workDate = workDate;
    }

    /**
     * 获取工时（转换为API需要的格式：小时数*100000）
     */
    public long getHoursForApi() {
        return (long) (hours * 100000);
    }

    /**
     * 获取开始时间戳（转换为秒）
     */
    public long getStartTimeForApi() {
        // 将日期转换为当天12:00:00的时间戳（秒）
        return workDate.atTime(12, 0, 0)
                .atZone(java.time.ZoneId.systemDefault())
                .toEpochSecond();
    }

    @Override
    public String toString() {
        return String.format("WorkItem{description='%s', hours=%.1f, taskId='%s', workDate=%s}",
                description, hours, taskId, workDate);
    }
}
